/**
 * 成员变量和局部变量的区别？
 * A：在类中的位置不同
 * 成员变量：在类的方法外
 * 局部变量：在方法定义中或方法声明上
 * B：在内存中的位置不同
 * 成员变量：在堆内存（有默认初始化值）
 * 局部变量：在栈内存
 * C：声明周期不同
 * 成员变量：随着对象的创建而存在，随着对象的消失而消失
 * 局部变量：随着方法的调用而存在，随着方法的调用完毕而消失
 * D：初始化值不同
 * 成员变量：有默认初始化值
 * 局部变量：没有默认初始化值，必须定义，赋值才能使用
 */
public class 成员变量和局部变量的区别 {
    int num;

    public void show() {
        // int num2;
        int num2 = 20;
        // java: 可能尚未初始化变量num2
        System.out.println(num2);

        int num = 100;
        System.out.println(num);
    }
}

class VariableDemo {
    public static void main(String[] args) {
        成员变量和局部变量的区别 f = new 成员变量和局部变量的区别();
        System.out.println(f.num);
        f.show();
    }
}
